import { Entity, PrimaryColumn, ManyToOne, JoinColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm'
import { Role } from './role.entity'
import { Permission } from './permission.entity'

/**
 * 角色权限关联实体
 * 用于管理角色与权限的多对多关系
 */
@Entity('va_role_permissions')
export class RolePermission {
  /** 角色ID */
  @PrimaryColumn({ name: 'role_id' })
  roleId: number

  /** 权限ID */
  @PrimaryColumn({ name: 'permission_id' })
  permissionId: number

  /** 创建时间 */
  @CreateDateColumn()
  createdAt: Date

  /** 更新时间 */
  @UpdateDateColumn()
  updatedAt: Date

  /** 角色信息 */
  @ManyToOne(() => Role, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'role_id' })
  role: Role

  /** 权限信息 */
  @ManyToOne(() => Permission, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'permission_id' })
  permission: Permission
}
